kernel:	kernel.o kstart.o libc.o libasm.o keyboard.o video.o shell.o print.o rtc.o cpuid.o cpuidasm.o chat.o
	ld -T link.ld -o kernel.bin kernel.o \
       	kstart.o libc.o libasm.o keyboard.o \
       	video.o shell.o print.o rtc.o cpuid.o \
	cpuidasm.o chat.o
       	 

kstart.o: kstart.asm
	nasm -f aout kstart.asm -o kstart.o

libasm.o: libasm.asm
	nasm -f aout libasm.asm -o libasm.o

kernel.o: kernel.c kasm.h defs.h kc.h keyboard.h
	gcc -c kernel.c -o kernel.o	

libc.o: libc.c
	gcc -c libc.c -o libc.o
	
keyboard.o:	keyboard.c keyboard.h
	gcc -c keyboard.c -o keyboard.o

video.o: video.c video.h
	gcc -c video.c -o video.o
	
rtc.o: rtc.c rtc.h
	gcc -c rtc.c -o rtc.o	

shell.o: shell.c shell.h
	gcc -c shell.c -o shell.o
	
print.o: print.c print.h
	gcc -c print.c -o print.o
	
cpuidasm.o: cpuid.asm
	nasm -f aout cpuid.asm -o cpuidasm.o

cpuid.o: cpuid.c cpuidasm.h cpuid.h
	gcc -c cpuid.c -o cpuid.o
	
chat.o: chat.c chat.h
	gcc -c chat.c -o chat.o

clean:	
	rm -f *.o
	rm -f kernel.bin
